﻿using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Runtime.Serialization;
using KPIS.GERP.Models.HRM;

namespace KPIS.GERP.Models.SYS
{
    [DataContract, Table("SysApprovePathSimulate")]
    public class ApprovePathSimulate
    {
        [Key, DataMember, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int SimId { get; set; }

        [DataMember]
        public int? ApproverPosId { get; set; }

        [DataMember, NotMapped]
        public Position ApproverPosition { get; set; }

        [DataMember]
        public int SimulateStepNo { get; set; }

        [DataMember]
        public int? AppPathStepNo { get; set; }

        [DataMember]
        public int? AppPathSubStepNo { get; set; }

        [DataMember]
        public ApproverType ApproverType { get; set; }

        [DataMember]
        public ApprovePathState ApprovePathState { get; set; }

        [DataMember]
        public int? AppPathId { get; set; }

        [DataMember]
        public ApprovePath ApprovePath { get; set; }
        
        [DataMember]
        public virtual bool IsApproveAble { get; set; }

        [DataMember]
        public virtual bool IsForwardable { get; set; }

        [DataMember]
        public virtual bool IsRejectable { get; set; }
        
        [DataMember]
        public virtual bool IsSendBackable { get; set; }

        [DataMember]
        public virtual bool IsForNotice { get; set; }
        
        [DataMember]
        public string SystemRemark { get; set; }
    }
}